function Schema(cityName) {
	this.name = cityName;
	var mData = {};
	var iter = 0;
	this.addLine = function (line) {
		mData[line.name] = line;
	};
	
	this.addNode = function (nodeStation1, nodeStation2) {
		nodeStation1.addNode(nodeStation2);
		nodeStation2.addNode(nodeStation1);
	};
	
	this.buildTracks = function (fromStation, toStation) {
		var result = [];
		var track = new Track(result.length);
		result[result.length] = track;
		
		function addNextNode (station) {
		   iter++;
			console.log(station.name, station.getNodesNumber());
			if (iter < 15) {
   			result[result.length - 1].addNext(station);
   			if (toStation.name != station.name) {
   				for (var i = 0; i < station.getNodesNumber(); i++) {
   			      if (false == station.getNode(i).isVisited(result.length - 1)) {
                     var newTrack = result[result.length - 1].clone(result.length);
                     addNextNode(station.getNode(i));
                     result[result.length] = newTrack;
                  }
   				}
   			}
			} else {
            return;
         }
		}
		addNextNode(fromStation);
		
		for (var i = 0; i < result.length; i++) {
			if (result[i].getLastNode().name != toStation.name) {
				result[i] = null;
			}
		}
		
		return result;
	};
}